<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<link rel="STYLESHEET" href="lib.css" type='text/css' />
<link rel="SHORTCUT ICON" href="../icons/pyfav.png" type="image/png" />
<link rel='start' href='../index.html' title='Python documentation Index' />
<link rel="first" href="lib.html" title='Python library Reference' />
<link rel='contents' href='contents.html' title="Contents" />
<link rel='index' href='genindex.html' title='Index' />
<link rel='last' href='about.html' title='About this document...' />
<link rel='help' href='about.html' title='About this document...' />
<link rel="next" href="dom-example.html" />
<link rel="prev" href="module-xml.dom.minidom.html" />
<link rel="parent" href="module-xml.dom.minidom.html" />
<link rel="next" href="dom-example.html" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name='aesop' content='information' />
<title>8.7.1 DOM Objects </title>
</head>
<body>
<div class="navigation">
<div id='top-navigation-panel' xml:id='top-navigation-panel'>
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td class='online-navigation'><a rel="prev" title="8.7 xml.dom.minidom  "
  href="module-xml.dom.minidom.html"><img src='../icons/previous.png'
  border='0' height='32'  alt='Previous Page' width='32' /></a></td>
<td class='online-navigation'><a rel="parent" title="8.7 xml.dom.minidom  "
  href="module-xml.dom.minidom.html"><img src='../icons/up.png'
  border='0' height='32'  alt='Up one Level' width='32' /></a></td>
<td class='online-navigation'><a rel="next" title="8.7.2 dom Example"
  href="dom-example.html"><img src='../icons/next.png'
  border='0' height='32'  alt='Next Page' width='32' /></a></td>
<td align="center" width="100%">Python Library Reference</td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
  href="contents.html"><img src='../icons/contents.png'
  border='0' height='32'  alt='Contents' width='32' /></a></td>
<td class='online-navigation'><a href="modindex.html" title="Module Index"><img src='../icons/modules.png'
  border='0' height='32'  alt='Module Index' width='32' /></a></td>
<td class='online-navigation'><a rel="index" title="Index"
  href="genindex.html"><img src='../icons/index.png'
  border='0' height='32'  alt='Index' width='32' /></a></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" href="module-xml.dom.minidom.html">8.7 xml.dom.minidom  </a>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="module-xml.dom.minidom.html">8.7 xml.dom.minidom  </a>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="dom-example.html">8.7.2 DOM Example</a>
</div>
<hr /></div>
</div>
<!--End of Navigation Panel-->

<h2><a name="SECTION0010710000000000000000"></a><a name="dom-objects"></a>
<br>
8.7.1 DOM Objects 
</h2>

<p>
The definition of the DOM API for Python is given as part of the
<tt class="module"><a href="module-xml.dom.html">xml.dom</a></tt> module documentation.  This section lists the
differences between the API and <tt class="module"><a href="module-xml.dom.minidom.html">xml.dom.minidom</a></tt>.

<p>
<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
  <td><nobr><b><tt id='l2h-1859' xml:id='l2h-1859' class="method">unlink</tt></b>(</nobr></td>
  <td><var></var>)</td></tr></table></dt>
<dd>
Break internal references within the DOM so that it will be garbage
collected on versions of Python without cyclic GC.  Even when cyclic
GC is available, using this can make large amounts of memory available
sooner, so calling this on DOM objects as soon as they are no longer
needed is good practice.  This only needs to be called on the
<tt class="class">Document</tt> object, but may be called on child nodes to discard
children of that node.
</dl>

<p>
<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
  <td><nobr><b><tt id='l2h-1860' xml:id='l2h-1860' class="method">writexml</tt></b>(</nobr></td>
  <td><var>writer</var><big>[</big><var>,indent=""</var><big>[</big><var>,addindent=""</var><big>[</big><var>,newl=""</var><big>]</big><var></var><big>]</big><var></var><big>]</big><var></var>)</td></tr></table></dt>
<dd>
Write XML to the writer object.  The writer should have a
<tt class="method">write()</tt> method which matches that of the file object
interface.  The <var>indent</var> parameter is the indentation of the current
node.  The <var>addindent</var> parameter is the incremental indentation to use
for subnodes of the current one.  The <var>newl</var> parameter specifies the
string to use to terminate newlines.

<p>

<span class="versionnote">Changed in version 2.1:
The optional keyword parameters
<var>indent</var>, <var>addindent</var>, and <var>newl</var> were added to support pretty
output.</span>

<p>

<span class="versionnote">Changed in version 2.3:
For the <tt class="class">Document</tt> node, an additional keyword
argument <var>encoding</var> can be used to specify the encoding field of the XML
header.</span>

</dl>

<p>
<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
  <td><nobr><b><tt id='l2h-1861' xml:id='l2h-1861' class="method">toxml</tt></b>(</nobr></td>
  <td><var></var><big>[</big><var>encoding</var><big>]</big><var></var>)</td></tr></table></dt>
<dd>
Return the XML that the DOM represents as a string.

<p>
With no argument, the XML header does not specify an encoding, and the
result is Unicode string if the default encoding cannot represent all
characters in the document. Encoding this string in an encoding other
than UTF-8 is likely incorrect, since UTF-8 is the default encoding of
XML.

<p>
With an explicit <var>encoding</var> argument, the result is a byte string
in the specified encoding. It is recommended that this argument is
always specified. To avoid <tt class="exception">UnicodeError</tt> exceptions in case of
unrepresentable text data, the encoding argument should be specified
as "utf-8".

<p>

<span class="versionnote">Changed in version 2.3:
the <var>encoding</var> argument was introduced.</span>

</dl>

<p>
<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
  <td><nobr><b><tt id='l2h-1862' xml:id='l2h-1862' class="method">toprettyxml</tt></b>(</nobr></td>
  <td><var></var><big>[</big><var>indent</var><big>[</big><var>, newl</var><big>]</big><var></var><big>]</big><var></var>)</td></tr></table></dt>
<dd>
Return a pretty-printed version of the document. <var>indent</var> specifies
the indentation string and defaults to a tabulator; <var>newl</var> specifies
the string emitted at the end of each line and defaults to <code>\n</code>.

<p>

<span class="versionnote">New in version 2.1.</span>

<span class="versionnote">Changed in version 2.3:
the encoding argument; see <tt class="method">toxml()</tt>.</span>

</dl>

<p>
The following standard DOM methods have special considerations with
<tt class="module"><a href="module-xml.dom.minidom.html">xml.dom.minidom</a></tt>:

<p>
<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
  <td><nobr><b><tt id='l2h-1863' xml:id='l2h-1863' class="method">cloneNode</tt></b>(</nobr></td>
  <td><var>deep</var>)</td></tr></table></dt>
<dd>
Although this method was present in the version of
<tt class="module"><a href="module-xml.dom.minidom.html">xml.dom.minidom</a></tt> packaged with Python 2.0, it was seriously
broken.  This has been corrected for subsequent releases.
</dl>

<p>

<div class="navigation">
<div class='online-navigation'>
<p></p><hr />
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td class='online-navigation'><a rel="prev" title="8.7 xml.dom.minidom  "
  href="module-xml.dom.minidom.html"><img src='../icons/previous.png'
  border='0' height='32'  alt='Previous Page' width='32' /></a></td>
<td class='online-navigation'><a rel="parent" title="8.7 xml.dom.minidom  "
  href="module-xml.dom.minidom.html"><img src='../icons/up.png'
  border='0' height='32'  alt='Up one Level' width='32' /></a></td>
<td class='online-navigation'><a rel="next" title="8.7.2 dom Example"
  href="dom-example.html"><img src='../icons/next.png'
  border='0' height='32'  alt='Next Page' width='32' /></a></td>
<td align="center" width="100%">Python Library Reference</td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
  href="contents.html"><img src='../icons/contents.png'
  border='0' height='32'  alt='Contents' width='32' /></a></td>
<td class='online-navigation'><a href="modindex.html" title="Module Index"><img src='../icons/modules.png'
  border='0' height='32'  alt='Module Index' width='32' /></a></td>
<td class='online-navigation'><a rel="index" title="Index"
  href="genindex.html"><img src='../icons/index.png'
  border='0' height='32'  alt='Index' width='32' /></a></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" href="module-xml.dom.minidom.html">8.7 xml.dom.minidom  </a>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="module-xml.dom.minidom.html">8.7 xml.dom.minidom  </a>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="dom-example.html">8.7.2 DOM Example</a>
</div>
</div>
<hr />
<span class="release-info">Release 2.5.1, documentation updated on 18th April, 2007.</span>
</div>
<!--End of Navigation Panel-->
<address>
See <i><a href="about.html">About this document...</a></i> for information on suggesting changes.
</address>
</body>
</html>
